
// Boost Includes ==============================================================
#include <boost/python.hpp>
#include <boost/cstdint.hpp>

// Includes ====================================================================
#include <OpenSG/OSGLineChunk.h>
#include <OpenSG/OSGLineChunkBase.h>
#include <OsgPtrHelpers.h>

// Using =======================================================================
using namespace boost::python;

// Declarations ================================================================
namespace  {

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_LineChunk_dump_overloads_0_2, dump, 0, 2)

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_LineChunk_activate_overloads_1_2, activate, 1, 2)

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_LineChunk_changeFrom_overloads_2_3, changeFrom, 2, 3)

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_LineChunk_deactivate_overloads_1_2, deactivate, 1, 2)


}// namespace


// Module ======================================================================
void Export_src_pyste_gen_LineChunk()
{
    scope* osg_LineChunkBase_scope = new scope(
    class_< osg::LineChunkBase, bases< osg::StateChunk > , boost::noncopyable >("LineChunkBase", no_init)
//        .def_readonly("WidthFieldMask", &osg::LineChunkBase::WidthFieldMask)
//        .def_readonly("StippleRepeatFieldMask", &osg::LineChunkBase::StippleRepeatFieldMask)
//        .def_readonly("StipplePatternFieldMask", &osg::LineChunkBase::StipplePatternFieldMask)
//        .def_readonly("SmoothFieldMask", &osg::LineChunkBase::SmoothFieldMask)
//        .def_readonly("MTInfluenceMask", &osg::LineChunkBase::MTInfluenceMask)
        .def("getClassType", &osg::LineChunkBase::getClassType, return_internal_reference< 1 >())
        .def("getClassTypeId", &osg::LineChunkBase::getClassTypeId)
        .def("getType", (osg::FieldContainerType& (osg::LineChunkBase::*)() )&osg::LineChunkBase::getType, return_internal_reference< 1 >())
        .def("getType", (const osg::FieldContainerType& (osg::LineChunkBase::*)() const)&osg::LineChunkBase::getType, return_internal_reference< 1 >())
        .def("getContainerSize", &osg::LineChunkBase::getContainerSize)
        //.def("getWidth", (osg::Real32& (osg::LineChunkBase::*)() )&osg::LineChunkBase::getWidth, return_value_policy< copy_const_reference >())
        .def("getWidth", (const osg::Real32& (osg::LineChunkBase::*)() const)&osg::LineChunkBase::getWidth, return_value_policy< copy_const_reference >())
        //.def("getStippleRepeat", (osg::Int32& (osg::LineChunkBase::*)() )&osg::LineChunkBase::getStippleRepeat, return_value_policy< copy_const_reference >())
        .def("getStippleRepeat", (const osg::Int32& (osg::LineChunkBase::*)() const)&osg::LineChunkBase::getStippleRepeat, return_value_policy< copy_const_reference >())
        //.def("getStipplePattern", (osg::UInt16& (osg::LineChunkBase::*)() )&osg::LineChunkBase::getStipplePattern, return_value_policy< copy_const_reference >())
        .def("getStipplePattern", (const osg::UInt16& (osg::LineChunkBase::*)() const)&osg::LineChunkBase::getStipplePattern, return_value_policy< copy_const_reference >())
        //.def("getSmooth", (bool& (osg::LineChunkBase::*)() )&osg::LineChunkBase::getSmooth, return_value_policy< copy_const_reference >())
        .def("getSmooth", (const bool& (osg::LineChunkBase::*)() const)&osg::LineChunkBase::getSmooth, return_value_policy< copy_const_reference >())
        .def("setWidth", &osg::LineChunkBase::setWidth)
        .def("setStippleRepeat", &osg::LineChunkBase::setStippleRepeat)
        .def("setStipplePattern", &osg::LineChunkBase::setStipplePattern)
        .def("setSmooth", &osg::LineChunkBase::setSmooth)
        .def("getBinSize", &osg::LineChunkBase::getBinSize)
        .def("copyToBin", &osg::LineChunkBase::copyToBin)
        .def("copyFromBin", &osg::LineChunkBase::copyFromBin)
        .def("create", &osg::LineChunkBase::create)
        .def("createEmpty", &osg::LineChunkBase::createEmpty)
        .def("shallowCopy", &osg::LineChunkBase::shallowCopy)
        .staticmethod("getClassType")
        .staticmethod("create")
        .staticmethod("createEmpty")
        .staticmethod("getClassTypeId")
    );

    scope().attr("SmoothFieldId") = (int)osg::LineChunkBase::SmoothFieldId;
    scope().attr("NextFieldId") = (int)osg::LineChunkBase::NextFieldId;
    scope().attr("WidthFieldId") = (int)osg::LineChunkBase::WidthFieldId;
    scope().attr("StippleRepeatFieldId") = (int)osg::LineChunkBase::StippleRepeatFieldId;
    scope().attr("StipplePatternFieldId") = (int)osg::LineChunkBase::StipplePatternFieldId;

    delete osg_LineChunkBase_scope;

    class_< osg::LineChunk, bases< osg::LineChunkBase > , boost::noncopyable, osg::LineChunkRefPtr >("LineChunk", no_init)
        .def("getStaticClassId", &osg::LineChunk::getStaticClassId)
        .def("changed", &osg::LineChunk::changed)
        .def("dump", &osg::LineChunk::dump, osg_LineChunk_dump_overloads_0_2())
        .def("activate", &osg::LineChunk::activate, osg_LineChunk_activate_overloads_1_2())
        .def("changeFrom", &osg::LineChunk::changeFrom, osg_LineChunk_changeFrom_overloads_2_3())
        .def("deactivate", &osg::LineChunk::deactivate, osg_LineChunk_deactivate_overloads_1_2())
        .def("switchCost", &osg::LineChunk::switchCost)
        .staticmethod("getStaticClassId")
        //.def( self < other< osg::StateChunk >() )
        //.def( self == other< osg::StateChunk >() )
        //.def( self != other< osg::StateChunk >() )
    ;


    register_ptr_to_python<osg::LineChunkPtr>();
    implicitly_convertible<osg::LineChunkRefPtr, osg::LineChunkPtr>();
    implicitly_convertible<osg::LineChunkPtr, osg::StateChunkPtr>();

    def("RefPtr", &pyopensg::ToRefPtr<osg::LineChunkPtr>);
    def("FCPtr", &pyopensg::ToFcPtr<osg::LineChunkPtr>);
}

